package com.it.hanzhongtravelv1.config;

import com.it.hanzhongtravelv1.entity.*;
import com.it.hanzhongtravelv1.repository.*;
import jakarta.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.time.LocalDate;
import java.util.List;

@Component
public class DataInitializer implements CommandLineRunner {
    
    @Autowired
    private AttractionRepository attractionRepository;
    
    @Autowired
    private AccommodationRepository accommodationRepository;
    
    @Autowired
    private RestaurantRepository restaurantRepository;
    
    @Autowired
    private FoodRepository foodRepository;
    
    @Autowired
    private TravelRouteRepository travelRouteRepository;
    
    @Autowired
    private TravelGuideRepository travelGuideRepository;
    
    @Autowired
    private CulturalActivityRepository culturalActivityRepository;
    
    @Autowired
    private FAQRepository faqRepository;
    
    @Autowired
    private UserRepository userRepository;
    
    @Autowired
    private ContactMessageRepository contactMessageRepository;
    
    @Autowired
    private PasswordEncoder passwordEncoder;
    
    @Override
    @Transactional
    public void run(String... args) throws Exception {
        if (attractionRepository.count() == 0) {
            initAttractions();
        }
        if (accommodationRepository.count() == 0) {
            initAccommodations();
        }
        if (restaurantRepository.count() == 0) {
            initRestaurants();
        }
        if (travelRouteRepository.count() == 0) {
            initTravelRoutes();
        }
        if (foodRepository.count() == 0) {
            initFoods();
        }
        if (travelGuideRepository.count() == 0) {
            initTravelGuides();
        }
        if (culturalActivityRepository.count() == 0) {
            initCulturalActivities();
        }
        if (faqRepository.count() == 0) {
            initFAQs();
        }
        if (userRepository.count() == 0) {
            initUsers();
        }
        if (contactMessageRepository.count() == 0) {
            initContactMessages();
        }
    }
    
    private void initAttractions() {
        // Natural Scenery
        Attraction zibaishan = new Attraction("紫柏山", "紫柏山，国家森林公园，以其丰富的植被和独特的山地景观而闻名。山上常年紫气缭绕，景色如画。", "img/attractions/zibaishan.jpg", "留坝县", "natural");
        zibaishan.setRating(4.7);
        zibaishan.setOpenTime("08:00 - 17:00");
        zibaishan.setTicketPrice("60元");
        attractionRepository.save(zibaishan);

        Attraction nanhufengjing = new Attraction("南湖风景区", "南湖风景区是汉中市最大的水上公园，湖光山色，风景秀丽，是市民休闲娱乐的好去处。", "img/attractions/nanhufengjing.jpg", "南郑区", "natural");
        nanhufengjing.setRating(4.5);
        nanhufengjing.setOpenTime("全天开放");
        nanhufengjing.setTicketPrice("免费");
        attractionRepository.save(nanhufengjing);

        Attraction shimenzhandao = new Attraction("石门栈道", "石门栈道是古代连接南北的交通要道，现为风景区。这里有壮观的悬崖峭壁和清澈的褒河水，还有惊险刺激的玻璃栈道。", "img/attractions/shimenzhandao.jpg", "汉台区", "natural");
        shimenzhandao.setRating(4.6);
        shimenzhandao.setOpenTime("08:30 - 18:00");
        shimenzhandao.setTicketPrice("80元");
        attractionRepository.save(shimenzhandao);

        // Historical Sites
        Attraction wuhoumu = new Attraction("武侯墓", "武侯墓是三国时期蜀汉丞相诸葛亮的安息之地，是全国重点文物保护单位。墓区古木参天，庄严肃穆。", "img/attractions/wuhoumu.jpg", "勉县", "historical");
        wuhoumu.setRating(4.8);
        wuhoumu.setOpenTime("08:00 - 18:00");
        wuhoumu.setTicketPrice("70元");
        attractionRepository.save(wuhoumu);

        Attraction wuhouci = new Attraction("武侯祠", "汉中武侯祠是国内最早、也是唯一由皇帝下诏修建的武侯祠，被誉为\\\"天下第一武侯祠\\\"。", "img/attractions/wuhouci.jpg", "勉县", "historical");
        wuhouci.setRating(4.7);
        wuhouci.setOpenTime("08:00 - 17:30");
        wuhouci.setTicketPrice("60元");
        attractionRepository.save(wuhouci);

        Attraction dingjunshan = new Attraction("定军山", "定军山是三国时期著名的古战场，老将黄忠在此刀劈夏侯渊。山势险峻，风景优美，是三国历史爱好者的必游之地。", "img/attractions/dingjunshan.jpg", "勉县", "historical");
        dingjunshan.setRating(4.5);
        dingjunshan.setOpenTime("08:30 - 17:00");
        dingjunshan.setTicketPrice("50元");
        attractionRepository.save(dingjunshan);

        // Cultural Landscapes
        Attraction hanzhongbowuguan = new Attraction("汉中市博物馆", "馆内收藏了大量珍贵文物，特别是石门十三品，是研究汉代隶书的珍贵资料。馆址为汉高祖刘邦的行宫——古汉台。", "img/attractions/hanzhongbowuguan.jpg", "汉台区", "cultural");
        hanzhongbowuguan.setRating(4.8);
        hanzhongbowuguan.setOpenTime("09:00 - 17:00 (周一闭馆)");
        hanzhongbowuguan.setTicketPrice("免费，需预约");
        attractionRepository.save(hanzhongbowuguan);

        Attraction qingmuchuan = new Attraction("青木川古镇", "青木川古镇是一个传奇古镇，因小说《青木川》而闻名。古镇建筑风格独特，融合了陕、甘、川三省的特色。", "img/attractions/qingmuchuanguzhen.jpg", "宁强县", "cultural");
        qingmuchuan.setRating(4.6);
        qingmuchuan.setOpenTime("全天开放");
        qingmuchuan.setTicketPrice("免费");
        attractionRepository.save(qingmuchuan);

        Attraction xinghanshengjing = new Attraction("兴汉胜境", "以汉文化为主题的大型文化旅游景区，通过宏伟的建筑和精彩的演艺，再现了大汉王朝的辉煌。", "img/attractions/xinghanshengjing.jpg", "汉台区", "cultural");
        xinghanshengjing.setRating(4.7);
        xinghanshengjing.setOpenTime("10:00 - 22:00");
        xinghanshengjing.setTicketPrice("120元");
        attractionRepository.save(xinghanshengjing);
    }
    
    private void initAccommodations() {
        Accommodation hotel1 = new Accommodation();
        hotel1.setName("汉中金江大酒店");
        hotel1.setDescription("汉中金江大酒店位于市中心，交通便利，周边商业设施完善，是商务和旅游的理想选择。");
        hotel1.setImage("img/attractions/jinjiang1.jpg");
        hotel1.setLocation("汉台区民主街中段");
        hotel1.setType("四星级");
        hotel1.setPriceRange("300-600元/晚");
        hotel1.setFacilities("餐厅、会议室、健身房、免费WiFi");
        hotel1.setNearbyAttractions("汉中古城墙、南湖公园");
        accommodationRepository.save(hotel1);

        Accommodation hotel2 = new Accommodation();
        hotel2.setName("荣嘉国际酒店");
        hotel2.setDescription("汉中荣嘉国际酒店环境优美，临近嘉陵江，房间宽敞明亮，服务热情周到。");
        hotel2.setImage("img/attractions/rongjia1.jpg");
        hotel2.setLocation("汉台区滨江路");
        hotel2.setType("三星级");
        hotel2.setPriceRange("200-400元/晚");
        hotel2.setFacilities("中餐厅、停车场、商务中心");
        hotel2.setNearbyAttractions("嘉陵江风光带");
        accommodationRepository.save(hotel2);

        Accommodation hotel3 = new Accommodation();
        hotel3.setName("汉中古城青年旅舍");
        hotel3.setDescription("位于汉中古城内的特色青年旅舍，环境温馨，价格实惠，适合背包客和年轻旅行者。");
        hotel3.setImage("img/attractions/qingnian.jpg");
        hotel3.setLocation("汉台区古城内");
        hotel3.setType("经济型");
        hotel3.setPriceRange("60-150元/晚");
        hotel3.setFacilities("公共厨房、休闲区、自助洗衣");
        hotel3.setNearbyAttractions("古城墙、汉中博物馆");
        accommodationRepository.save(hotel3);

        Accommodation hotel4 = new Accommodation();
        hotel4.setName("武侯山庄");
        hotel4.setDescription("武侯山庄是一家具有三国文化特色的民宿，距离武侯墓景区仅500米，环境幽静，服务周到。");
        hotel4.setImage("img/attractions/youmanji.jpg");
        hotel4.setLocation("勉县武侯墓景区附近");
        hotel4.setType("特色民宿");
        hotel4.setPriceRange("180-380元/晚");
        hotel4.setFacilities("三国主题房间、农家餐厅、免费停车");
        hotel4.setNearbyAttractions("武侯墓、定军山");
        accommodationRepository.save(hotel4);
    }
    
    private void initRestaurants() {
        Restaurant res1 = new Restaurant();
        res1.setName("老马家面皮");
        res1.setAddress("汉台区北大街45号");
        res1.setRating(4.8);
        res1.setDescription("老马家面皮是汉中市区最有名的面皮店之一，创立于1986年，至今已有30多年历史。店内的面皮选料考究，工艺精湛，口感筋道爽滑，调料独特，深受当地人和游客的喜爱。");
        res1.setSpecialtyDish("传统面皮,麻辣面皮,凉拌面皮");
        res1.setAveragePrice("人均15-25元");
        res1.setOpeningHours("07:00-21:00");
        res1.setPhone("0916-2345678");
        restaurantRepository.save(res1);

        Restaurant res2 = new Restaurant();
        res2.setName("武侯豆腐坊");
        res2.setAddress("勉县武侯路12号");
        res2.setRating(4.6);
        res2.setDescription("武侯豆腐坊位于勉县武侯墓景区附近，是一家以豆腐为主打的特色餐厅。店内的豆腐选用当地优质黄豆制作，口感细腻，配以特制调料，风味独特，是品尝汉中豆腐的理想去处。");
        res2.setSpecialtyDish("三国豆腐宴,麻婆豆腐,豆腐脑");
        res2.setAveragePrice("人均30-50元");
        res2.setOpeningHours("10:00-22:00");
        res2.setPhone("0916-3456789");
        restaurantRepository.save(res2);

        Restaurant res3 = new Restaurant();
        res3.setName("汉江鱼府");
        res3.setAddress("汉台区滨江路78号");
        res3.setRating(4.7);
        res3.setDescription("汉江鱼府是汉中市区著名的水产餐厅，主打汉江流域的各种鲜鱼美食。餐厅环境优雅，视野开阔，可以一边品尝美食，一边欣赏汉江风光，是家庭聚餐和商务宴请的理想场所。");
        res3.setSpecialtyDish("清蒸嘉陵江鱼,红烧鲤鱼,酸菜鱼");
        res3.setAveragePrice("人均80-120元");
        res3.setOpeningHours("11:00-22:00");
        res3.setPhone("0916-4567890");
        restaurantRepository.save(res3);

        Restaurant res4 = new Restaurant();
        res4.setName("古城羊肉馆");
        res4.setAddress("汉台区古城内南街23号");
        res4.setRating(4.9);
        res4.setDescription("古城羊肉馆是汉中古城内的老字号餐馆，专营汉中炕炉羊肉等特色羊肉美食。店内装修古朴典雅，羊肉选用当地山羊，肉质鲜嫩，味道醇香，是冬季品尝羊肉的首选之地。");
        res4.setSpecialtyDish("炕炉羊肉,手抓羊肉,羊肉泡馍");
        res4.setAveragePrice("人均60-100元");
        res4.setOpeningHours("10:00-21:00");
        res4.setPhone("0916-5678901");
        restaurantRepository.save(res4);
    }
    
    private void initTravelRoutes() {
        System.out.println("开始初始化旅游线路数据...");
        
        // 清理现有数据，确保数据一致性
        System.out.println("清理现有旅游线路数据...");
        travelRouteRepository.deleteAll();
        
        // 创建各种类型的旅游线路 - 只保留前台支持的三种类型
        createOneDayHistoricalTour();
        createOneDayNaturalTour();
        createThreeDayComprehensiveTour();
        createFiveDayDeepTour();
        
        System.out.println("旅游线路数据初始化完成！");
    }
    
    /**
     * 创建基础旅游线路对象
     */
    private TravelRoute createBaseRoute(String name, String description, String duration, String theme, 
                                      Double price, String transportation, String image, 
                                      String features, String suitableFor, String tips) {
        TravelRoute route = new TravelRoute();
        route.setName(name);
        route.setDescription(description);
        route.setDuration(duration);
        route.setTheme(theme);
        route.setPrice(price);
        route.setTransportation(transportation);
        route.setImage(image);
        route.setFeatures(features);
        route.setSuitableFor(suitableFor);
        route.setTips(tips);
        return route;
    }
    
    /**
     * 创建活动对象
     */
    private DayActivity createActivity(DayActivity.ActivityTimeType timeType, String time, 
                                     String title, String description) {
        DayActivity activity = new DayActivity();
        activity.setTimeType(timeType);
        activity.setTime(time);
        activity.setTitle(title);
        activity.setDescription(description);
        return activity;
    }
    
    /**
     * 创建路线天数对象
     */
    private RouteDay createRouteDay(int dayNumber, TravelRoute route) {
        RouteDay routeDay = new RouteDay();
        routeDay.setDayNumber(dayNumber);
        routeDay.setTravelRoute(route);
        return routeDay;
    }
    
    /**
     * 汉中历史文化一日游
     */
    private void createOneDayHistoricalTour() {
        System.out.println("创建：汉中历史文化一日游");
        
        TravelRoute route = createBaseRoute(
            "汉中历史文化一日游",
            "深度体验汉中历史文化，探访三国遗迹，了解汉中古城的历史变迁。从汉中博物馆开始，到武侯墓结束，全程感受汉中深厚的历史文化底蕴。",
            "一日游",
            "历史文化",
            180.0,
            "市内公交+步行",
            "img/attractions/yiriyou.jpg",
            "深度体验汉中历史文化，了解三国文化和汉中古城的历史变迁，专业导游讲解",
            "历史文化爱好者、三国迷、摄影爱好者、学生团体",
            "汉中博物馆周一闭馆，请提前查询开放时间。定军山和武侯墓距离市区较远，建议包车或参加一日游团。"
        );
        
        // 第一天行程
        RouteDay day1 = createRouteDay(1, route);
        
        // 添加具体活动
        List<DayActivity> activities = List.of(
            createActivity(DayActivity.ActivityTimeType.TIME_POINT, "08:30", "汉中博物馆", 
                "参观汉中博物馆，了解汉中悠久的历史文化，观赏珍贵文物，特别是著名的石门十三品。"),
            createActivity(DayActivity.ActivityTimeType.TIME_POINT, "10:30", "古汉台", 
                "游览古汉台，这里是刘邦的行宫遗址，感受汉王朝的历史气息。"),
            createActivity(DayActivity.ActivityTimeType.TIME_POINT, "12:00", "午餐时间", 
                "品尝汉中特色美食，如汉中面皮、热米皮、腊汁肉夹馍等传统小吃。"),
            createActivity(DayActivity.ActivityTimeType.TIME_POINT, "13:30", "前往勉县", 
                "乘车前往勉县，途中欣赏汉中平原风光。"),
            createActivity(DayActivity.ActivityTimeType.TIME_POINT, "14:30", "定军山", 
                "登临定军山，了解三国时期的历史故事，黄忠斩夏侯渊的古战场。"),
            createActivity(DayActivity.ActivityTimeType.TIME_POINT, "16:00", "武侯墓", 
                "参观诸葛亮墓，缅怀一代军师，了解三国文化的深厚内涵。"),
            createActivity(DayActivity.ActivityTimeType.TIME_POINT, "17:30", "返回市区", 
                "返回汉中市区，结束愉快的历史文化之旅。")
        );
        
        // 设置活动与RouteDay的关系
        activities.forEach(activity -> {
            activity.setRouteDay(day1);
            day1.getActivities().add(activity);
        });
        
        // 设置RouteDay与TravelRoute的关系
        route.getDays().add(day1);
        
        // 保存到数据库
        travelRouteRepository.save(route);
        System.out.println("汉中历史文化一日游创建完成");
    }
    
    /**
     * 汉中自然风光一日游
     */
    private void createOneDayNaturalTour() {
        System.out.println("创建：汉中自然风光一日游");
        
        TravelRoute route = createBaseRoute(
            "汉中自然风光一日游",
            "欣赏汉中市区及周边自然风光，放松身心。从南湖风景区的湖光山色到石门栈道的险峻壮观，体验汉中的自然之美。",
            "一日游",
            "自然风光",
            160.0,
            "旅游巴士",
            "img/attractions/yiri.jpg",
            "欣赏汉中市区及周边自然风光，放松身心，体验秦岭山水之美",
            "自然爱好者、休闲度假游客、家庭出游、摄影爱好者",
            "石门栈道有一定难度，老人和小孩需谨慎。雨天路滑，注意安全。建议穿着舒适的运动鞋。"
        );
        
        RouteDay day1 = createRouteDay(1, route);
        
        List<DayActivity> activities = List.of(
            createActivity(DayActivity.ActivityTimeType.TIME_POINT, "08:30", "集合出发", 
                "在指定地点集合，乘坐旅游巴士出发，开始自然风光之旅。"),
            createActivity(DayActivity.ActivityTimeType.TIME_POINT, "09:00", "南湖风景区", 
                "游览南湖风景区，欣赏湖光山色，可选择乘船游湖或湖边漫步。"),
            createActivity(DayActivity.ActivityTimeType.TIME_POINT, "11:30", "南湖公园", 
                "在南湖公园休息，欣赏园林景观，体验当地人的休闲生活。"),
            createActivity(DayActivity.ActivityTimeType.TIME_POINT, "12:30", "午餐", 
                "在南湖附近餐厅享用午餐，品尝当地特色菜肴。"),
            createActivity(DayActivity.ActivityTimeType.TIME_POINT, "14:00", "石门栈道", 
                "前往石门栈道，体验惊险刺激的玻璃栈道，欣赏秦岭美景和褒河风光。"),
            createActivity(DayActivity.ActivityTimeType.TIME_POINT, "16:30", "褒河风光", 
                "沿褒河欣赏山水风光，拍照留念，感受大自然的魅力。"),
            createActivity(DayActivity.ActivityTimeType.TIME_POINT, "17:30", "返回市区", 
                "返回汉中市区，在古街品尝特色小吃，结束自然风光之旅。")
        );
        
        activities.forEach(activity -> {
            activity.setRouteDay(day1);
            day1.getActivities().add(activity);
        });
        
        route.getDays().add(day1);
        travelRouteRepository.save(route);
        System.out.println("汉中自然风光一日游创建完成");
    }
    
    /**
     * 汉中山水文化三日游
     */
    private void createThreeDayComprehensiveTour() {
        System.out.println("创建：汉中山水文化三日游");
        
        TravelRoute route = createBaseRoute(
            "汉中山水文化三日游",
            "兼顾自然风光与人文历史，全方位体验汉中魅力。三天时间深度游览汉中的精华景点，感受汉中的山水之美和文化底蕴。",
            "三日游",
            "山水文化",
            680.0,
            "旅游巴士",
            "img/attractions/sanri.jpg",
            "兼顾自然风光与人文历史，全方位体验汉中魅力，专业导游全程陪同",
            "首次来汉中的游客、喜欢深度旅行的游客、摄影爱好者",
            "建议提前预订住宿，特别是旺季。行程安排较紧凑，建议穿着舒适。建议包车或租车游览。"
        );
        
        // 第一天：汉中市区文化游
        RouteDay day1 = createRouteDay(1, route);
        List<DayActivity> day1Activities = List.of(
            createActivity(DayActivity.ActivityTimeType.TIME_SLOT, "上午", "汉中博物馆", 
                "深入了解汉中历史文化，观赏珍贵文物，特别是石门十三品。"),
            createActivity(DayActivity.ActivityTimeType.TIME_SLOT, "中午", "特色午餐", 
                "品尝汉中特色美食，如面皮、菜豆腐等。"),
            createActivity(DayActivity.ActivityTimeType.TIME_SLOT, "下午", "古城墙、南湖风景区", 
                "游览汉中古城墙，感受古城风貌；游览南湖风景区，欣赏湖光山色。"),
            createActivity(DayActivity.ActivityTimeType.TIME_SLOT, "晚上", "汉江夜景", 
                "欣赏汉江夜景，在江边漫步，品尝当地夜市小吃。")
        );
        
        day1Activities.forEach(activity -> {
            activity.setRouteDay(day1);
            day1.getActivities().add(activity);
        });
        
        // 第二天：三国文化之旅
        RouteDay day2 = createRouteDay(2, route);
        List<DayActivity> day2Activities = List.of(
            createActivity(DayActivity.ActivityTimeType.TIME_SLOT, "上午", "定军山", 
                "登临定军山，了解三国历史，欣赏山间风景。"),
            createActivity(DayActivity.ActivityTimeType.TIME_SLOT, "中午", "勉县午餐", 
                "在勉县品尝当地特色美食，体验县城风情。"),
            createActivity(DayActivity.ActivityTimeType.TIME_SLOT, "下午", "武侯墓、武侯祠", 
                "参观武侯墓和武侯祠，深入了解诸葛亮的生平事迹。"),
            createActivity(DayActivity.ActivityTimeType.TIME_SLOT, "晚上", "返回市区", 
                "返回汉中市区，休息准备第三天行程。")
        );
        
        day2Activities.forEach(activity -> {
            activity.setRouteDay(day2);
            day2.getActivities().add(activity);
        });
        
        // 第三天：自然风光之旅
        RouteDay day3 = createRouteDay(3, route);
        List<DayActivity> day3Activities = List.of(
            createActivity(DayActivity.ActivityTimeType.TIME_SLOT, "上午", "石门栈道", 
                "体验石门栈道的惊险刺激，欣赏褒河风光。"),
            createActivity(DayActivity.ActivityTimeType.TIME_SLOT, "中午", "山区午餐", 
                "在山区餐厅享用午餐，品尝山区特色菜肴。"),
            createActivity(DayActivity.ActivityTimeType.TIME_SLOT, "下午", "紫柏山", 
                "根据季节和天气情况，游览紫柏山或其他自然景点。"),
            createActivity(DayActivity.ActivityTimeType.TIME_SLOT, "傍晚", "返程", 
                "结束三日游行程，返回出发地或继续其他行程。")
        );
        
        day3Activities.forEach(activity -> {
            activity.setRouteDay(day3);
            day3.getActivities().add(activity);
        });
        
        route.getDays().addAll(List.of(day1, day2, day3));
        travelRouteRepository.save(route);
        System.out.println("汉中山水文化三日游创建完成");
    }
    
    /**
     * 汉中深度体验五日游
     */
    private void createFiveDayDeepTour() {
        System.out.println("创建：汉中深度体验五日游");
        
        TravelRoute route = createBaseRoute(
            "汉中深度体验五日游",
            "全面深入体验汉中的自然风光、历史文化、民俗风情。五天时间让您充分感受汉中的魅力，从繁华市区到宁静古镇，从历史遗迹到自然风光。",
            "五日游",
            "深度体验",
            1280.0,
            "豪华旅游巴士",
            "img/attractions/wuri.jpg",
            "全面深入体验汉中的自然风光、历史文化、民俗风情，专业导游全程陪同，深度讲解",
            "长假出行、喜欢深度旅行的游客、摄影爱好者、文化爱好者",
            "五日游行程较长，建议合理安排休息时间。需要一定的体力，建议提前做好身体准备。"
        );
        
        // 第一天：汉中市区初体验
        RouteDay day1 = createRouteDay(1, route);
        day1.getActivities().add(
            createActivity(DayActivity.ActivityTimeType.DAILY_SUMMARY, "第一天", "汉中市区深度游", 
                "汉中博物馆深度参观、古城墙登高远眺、南湖风景区休闲漫步、汉江夜景欣赏，全面了解汉中市区风貌。")
        );
        day1.getActivities().forEach(activity -> activity.setRouteDay(day1));
        
        // 第二天：三国文化深度体验
        RouteDay day2 = createRouteDay(2, route);
        day2.getActivities().add(
            createActivity(DayActivity.ActivityTimeType.DAILY_SUMMARY, "第二天", "三国文化深度之旅", 
                "定军山古战场探访、武侯墓祭拜诸葛亮、武侯祠深度参观、三国文化园体验，全面了解三国文化在汉中的传承。")
        );
        day2.getActivities().forEach(activity -> activity.setRouteDay(day2));
        
        // 第三天：自然风光探索
        RouteDay day3 = createRouteDay(3, route);
        day3.getActivities().add(
            createActivity(DayActivity.ActivityTimeType.DAILY_SUMMARY, "第三天", "秦岭自然风光之旅", 
                "石门栈道惊险体验、褒河风光欣赏、紫柏山登山探索（根据季节和天气调整），深度体验秦岭山水之美。")
        );
        day3.getActivities().forEach(activity -> activity.setRouteDay(day3));
        
        // 第四天：古镇民俗体验
        RouteDay day4 = createRouteDay(4, route);
        day4.getActivities().add(
            createActivity(DayActivity.ActivityTimeType.DAILY_SUMMARY, "第四天", "古镇民俗文化体验", 
                "青木川古镇深度游览、古建筑参观、民俗文化体验、当地手工艺品制作参与，感受汉中传统文化魅力。")
        );
        day4.getActivities().forEach(activity -> activity.setRouteDay(day4));
        
        // 第五天：美食文化与购物
        RouteDay day5 = createRouteDay(5, route);
        day5.getActivities().add(
            createActivity(DayActivity.ActivityTimeType.DAILY_SUMMARY, "第五天", "美食文化与特产购物", 
                "汉中特色美食深度品尝、传统制作工艺参观、特色商品购物、总结分享旅行体验，完美结束汉中深度之旅。")
        );
        day5.getActivities().forEach(activity -> activity.setRouteDay(day5));
        
        route.getDays().addAll(List.of(day1, day2, day3, day4, day5));
        travelRouteRepository.save(route);
        System.out.println("汉中深度体验五日游创建完成");
    }
    
    private void initFoods() {
        Food food = new Food();
        food.setName("汉中面皮");
        food.setDescription("汉中面皮，又称汉中凉皮，是陕西南部汉中地区著名的地方特色小吃。");
        food.setImageUrl("img/food/mianpi.jpg");
        food.setCategory("特色小吃");
        food.setSpecialFeature("酸辣爽口");
        food.setPrice(10.00);
        food.setRating(4.8);
        food.setTags("招牌美食,主食");
        foodRepository.save(food);

        food = new Food();
        food.setName("汉中菜豆腐");
        food.setDescription("菜豆腐是汉中地区的传统名菜，用料讲究，制作精细。");
        food.setImageUrl("img/food/doufu.jpg");
        food.setCategory("地方名菜");
        food.setSpecialFeature("清香鲜嫩");
        food.setPrice(15.00);
        food.setRating(4.7);
        food.setTags("健康,素食");
        foodRepository.save(food);

        food = new Food();
        food.setName("宁强麻辣鸡");
        food.setDescription("宁强麻辣鸡是宁强县的特色美食，以其麻、辣、鲜、香而闻名。");
        food.setImageUrl("img/food/malaji.jpg");
        food.setCategory("地方名菜");
        food.setSpecialFeature("麻辣鲜香");
        food.setPrice(35.00);
        food.setRating(4.9);
        food.setTags("下饭菜,招牌");
        foodRepository.save(food);

        food = new Food();
        food.setName("西乡牛肉干");
        food.setDescription("西乡牛肉干是陕西省的著名特产，历史悠久，制作工艺独特。");
        food.setImageUrl("img/food/larou.jpg");
        food.setCategory("特产");
        food.setSpecialFeature("咸香有嚼劲");
        food.setPrice(50.00);
        food.setRating(4.8);
        food.setTags("零食,特产");
        foodRepository.save(food);

        food = new Food();
        food.setName("城固原公杂烩");
        food.setDescription("原公杂烩是城固县的传统名菜，用料丰富，味道鲜美。");
        food.setImageUrl("img/food/guoba.jpg");
        food.setCategory("地方名菜");
        food.setSpecialFeature("咸鲜");
        food.setPrice(40.00);
        food.setRating(4.6);
        food.setTags("宴席菜");
        foodRepository.save(food);

        food = new Food();
        food.setName("略阳罐罐茶");
        food.setDescription("罐罐茶是略阳县的传统饮品，具有浓厚的地域特色。");
        food.setImageUrl("img/food/guanguancha.jpg");
        food.setCategory("特色饮品");
        food.setSpecialFeature("咸香");
        food.setPrice(8.00);
        food.setRating(4.5);
        food.setTags("特色,早餐");
        foodRepository.save(food);

        food = new Food();
        food.setName("褒河鲜鱼");
        food.setDescription("褒河鲜鱼是汉中地区的特色美食，以其肉质鲜嫩、味道鲜美而著称。");
        food.setImageUrl("img/food/baoheyu.jpg");
        food.setCategory("地方名菜");
        food.setSpecialFeature("鲜美");
        food.setPrice(68.00);
        food.setRating(4.7);
        food.setTags("河鲜,招牌");
        foodRepository.save(food);

        food = new Food();
        food.setName("汉中锅贴");
        food.setDescription("汉中锅贴是汉中地区的传统小吃，外皮香脆，馅料鲜美。");
        food.setImageUrl("img/food/guotie.jpg");
        food.setCategory("特色小吃");
        food.setSpecialFeature("咸香");
        food.setPrice(12.00);
        food.setRating(4.6);
        food.setTags("早餐,小吃");
        foodRepository.save(food);

        food = new Food();
        food.setName("宁强核桃馍");
        food.setDescription("宁强核桃馍是宁强县的特色小吃，香酥可口，营养丰富。");
        food.setImageUrl("img/food/hetaomo.jpg");
        food.setCategory("特色小吃");
        food.setSpecialFeature("香酥");
        food.setPrice(5.00);
        food.setRating(4.8);
        food.setTags("特产,小吃");
        foodRepository.save(food);

        food = new Food();
        food.setName("浆水面");
        food.setDescription("浆水面是汉中地区的传统面食，酸爽开胃，是夏季的消暑佳品。");
        food.setImageUrl("img/food/jiangshuimian.jpg");
        food.setCategory("特色主食");
        food.setSpecialFeature("酸爽");
        food.setPrice(10.00);
        food.setRating(4.7);
        food.setTags("夏季,主食");
        foodRepository.save(food);
    }
    
    private void initTravelGuides() {
        // 交通指南
        TravelGuide transport = new TravelGuide("汉中交通指南", 
            "汉中市交通便利，拥有汉中机场、火车站等。市内公交系统完善，建议游客选择公共交通出行。汉中西关机场有直飞西安、北京、上海、广州、成都等航线。西成高铁从西安到汉中仅需1小时。", 
            "交通指南");
        transport.setAuthor("汉中旅游局");
        
        TravelGuide airportGuide = new TravelGuide("汉中机场交通攻略", 
            "汉中西关机场位于市区西部，距市中心约10公里。机场巴士15元/人，出租车约30元。机场有直达市区的专线巴士，每30分钟一班。", 
            "交通指南");
        airportGuide.setAuthor("汉中旅游局");
        
        TravelGuide trainGuide = new TravelGuide("汉中高铁出行指南", 
            "汉中是西成高铁和西汉高铁的重要站点。从西安到汉中高铁仅需1小时，从成都到汉中约3小时。火车站有1路、5路、9路等公交车可到达市区主要地点。", 
            "交通指南");
        trainGuide.setAuthor("汉中旅游局");
        
        // 住宿推荐
        TravelGuide hotel = new TravelGuide("汉中住宿推荐", 
            "汉中市区有各类酒店，从经济型到五星级应有尽有。推荐汉中金江大酒店、荣嘉国际酒店等。景区附近有特色民宿，如武侯山庄等。", 
            "住宿推荐");
        hotel.setAuthor("汉中旅游局");
        
        TravelGuide hotelBudget = new TravelGuide("汉中经济型住宿指南", 
            "经济型酒店150-300元/晚，青年旅舍60-150元/晚。推荐汉中古城青年旅舍，位置优越，价格实惠。连锁酒店如汉庭、7天等分布在市区各处。", 
            "住宿推荐");
        hotelBudget.setAuthor("汉中旅游局");
        
        TravelGuide hotelLuxury = new TravelGuide("汉中高端住宿推荐", 
            "四星级酒店300-600元/晚，有汉中金江大酒店等。特色民宿180-400元/晚，如武侯山庄，环境优美，服务周到。节假日建议提前预订。", 
            "住宿推荐");
        hotelLuxury.setAuthor("汉中旅游局");
        
        // 注意事项
        TravelGuide tips = new TravelGuide("汉中旅游注意事项", 
            "1. 春秋季节最适宜游览；2. 注意防寒保暖；3. 尊重当地文化；4. 保护环境；5. 山区道路注意安全；6. 带好雨具防晒用品。", 
            "注意事项");
        tips.setAuthor("汉中旅游局");
        
        TravelGuide weatherTips = new TravelGuide("汉中天气及装备建议", 
            "汉中夏季炎热多雨，需带雨具和防晒用品。冬季温差大，需保暖衣物。山区游玩穿舒适运动鞋，准备防蚊虫药物。年平均气温14.3℃。", 
            "注意事项");
        weatherTips.setAuthor("汉中旅游局");
        
        TravelGuide safetyTips = new TravelGuide("汉中旅游安全须知", 
            "自驾游注意山区道路安全，部分路段较窄。景区内注意安全标识，不要独自前往未开发区域。选择正规餐厅用餐，注意饮食卫生。", 
            "注意事项");
        safetyTips.setAuthor("汉中旅游局");
        
        // 最佳旅游时间
        TravelGuide bestTime = new TravelGuide("汉中最佳旅游时间", 
            "春季（3-5月）气温适宜，可赏油菜花；秋季（9-11月）天高气爽，观赏红叶。夏季适合山区避暑和水上活动，冬季较冷，适合文化游。", 
            "最佳时间");
        bestTime.setAuthor("汉中旅游局");
        
        TravelGuide springGuide = new TravelGuide("汉中春季旅游攻略", 
            "春季是汉中旅游黄金季节，3-5月油菜花盛开，形成金色海洋。气温12-22℃，适合踏青赏花。推荐南湖公园樱花、汉中油菜花节等活动。", 
            "最佳时间");
        springGuide.setAuthor("汉中旅游局");
        
        TravelGuide autumnGuide = new TravelGuide("汉中秋季旅游攻略", 
            "秋季（9-11月）是汉中最美季节，天高气爽，山林层林尽染。气温15-25℃，适合登山观景。推荐定军山、紫柏山看红叶，参加丰收节活动。", 
            "最佳时间");
        autumnGuide.setAuthor("汉中旅游局");
        
        // 保存所有攻略
        travelGuideRepository.save(transport);
        travelGuideRepository.save(airportGuide);
        travelGuideRepository.save(trainGuide);
        travelGuideRepository.save(hotel);
        travelGuideRepository.save(hotelBudget);
        travelGuideRepository.save(hotelLuxury);
        travelGuideRepository.save(tips);
        travelGuideRepository.save(weatherTips);
        travelGuideRepository.save(safetyTips);
        travelGuideRepository.save(bestTime);
        travelGuideRepository.save(springGuide);
        travelGuideRepository.save(autumnGuide);
    }
    
    private void initCulturalActivities() {
        // 武侯祭祀大典
        CulturalActivity wuhouSacrifice = new CulturalActivity();
        wuhouSacrifice.setTitle("武侯祭祀大典");
        wuhouSacrifice.setImage("img/attractions/wuhouci1.jpg");
        wuhouSacrifice.setLocation("勉县武侯墓");
        wuhouSacrifice.setMainDescription("武侯祭祀大典是汉中最重要的传统祭祀活动，每年农历七月二十三日举行。这一活动源于三国时期，是为了纪念蜀汉丞相诸葛亮而设立的。");
        wuhouSacrifice.setDisplayDate("7月23日(农历)");
        wuhouSacrifice.setStartDate(LocalDate.of(2024, 8, 26)); // Assuming 2024 lunar date
        wuhouSacrifice.setEndDate(LocalDate.of(2024, 8, 26));
        wuhouSacrifice.setParticipationMethod("仪式免费观看");
        wuhouSacrifice.addDetail(new CulturalActivityDetail("活动特色", "祭祀仪式融合了传统礼仪和现代元素，通过庄重的仪式展现对历史人物的崇敬之情。"));
        wuhouSacrifice.addDetail(new CulturalActivityDetail("文化价值", "武侯祭祀大典不仅是对历史人物的纪念，更是对中华传统文化的传承。"));
        culturalActivityRepository.save(wuhouSacrifice);

        // 汉中油菜花节
        CulturalActivity rapeseedFestival = new CulturalActivity();
        rapeseedFestival.setTitle("汉中油菜花节");
        rapeseedFestival.setImage("img/attractions/youcaihua.jpg");
        rapeseedFestival.setLocation("汉中盆地各县区");
        rapeseedFestival.setMainDescription("汉中油菜花节是春季最具特色的文化旅游活动，每年3月中旬至4月中旬举行。汉中盆地内数十万亩油菜花竞相绽放，金黄一片，蔚为壮观。");
        rapeseedFestival.setDisplayDate("3月中旬-4月中旬");
        rapeseedFestival.setStartDate(LocalDate.of(2024, 3, 15));
        rapeseedFestival.setEndDate(LocalDate.of(2024, 4, 15));
        rapeseedFestival.setParticipationMethod("部分活动需购票");
        rapeseedFestival.addDetail(new CulturalActivityDetail("活动亮点", "油菜花节期间，除了观赏花海外，还举办摄影大赛、乡村文化展演、农事体验、美食品鉴等活动。"));
        rapeseedFestival.addDetail(new CulturalActivityDetail("文化内涵", "油菜花节不仅展示了汉中的自然风光，更展现了当地农耕文化的特色。"));
        culturalActivityRepository.save(rapeseedFestival);
        
        // 汉调桄桄子展演
        CulturalActivity guangguangziShow = new CulturalActivity();
        guangguangziShow.setTitle("汉调桄桄子展演");
        guangguangziShow.setImage("img/attractions/guchengqiang.jpg");
        guangguangziShow.setLocation("汉中大剧院");
        guangguangziShow.setMainDescription("汉调桄桄子是汉中地区独特的传统戏曲艺术，被列入国家级非物质文化遗产名录。");
        guangguangziShow.setDisplayDate("11月初");
        guangguangziShow.setStartDate(LocalDate.of(2024, 11, 1));
        guangguangziShow.setEndDate(LocalDate.of(2024, 11, 10));
        guangguangziShow.setParticipationMethod("部分演出需购票");
        guangguangziShow.addDetail(new CulturalActivityDetail("艺术特色", "汉调桄桄子的表演形式独特，唱腔高亢激昂，表演夸张生动。"));
        guangguangziShow.addDetail(new CulturalActivityDetail("传承发展", "通过展演活动，不仅让更多人了解这一传统艺术，也为年轻一代提供了学习和传承的机会。"));
        culturalActivityRepository.save(guangguangziShow);

        // 汉中古城文化节
        CulturalActivity ancientCityFestival = new CulturalActivity();
        ancientCityFestival.setTitle("汉中古城文化节");
        ancientCityFestival.setImage("img/attractions/guchengwenhua.jpg");
        ancientCityFestival.setLocation("汉中古城区");
        ancientCityFestival.setMainDescription("汉中古城文化节是展示汉中历史文化的重要平台，每年秋季举行。");
        ancientCityFestival.setDisplayDate("9月下旬");
        ancientCityFestival.setStartDate(LocalDate.of(2024, 9, 20));
        ancientCityFestival.setEndDate(LocalDate.of(2024, 9, 30));
        ancientCityFestival.setParticipationMethod("部分活动需购票");
        ancientCityFestival.addDetail(new CulturalActivityDetail("活动内容", "文化节期间举办古城巡游、传统服饰展示、民间艺术表演、美食节等活动。"));
        ancientCityFestival.addDetail(new CulturalActivityDetail("文化价值", "通过文化节活动，不仅展示了汉中的历史文化，也促进了传统文化的传承与创新。"));
        culturalActivityRepository.save(ancientCityFestival);
    }
    
    private void initFAQs() {
        faqRepository.deleteAll();
    
        FAQ faq;
        int sortOrder;
    
        // --- 基本信息 ---
        sortOrder = 1;
        String categoryGeneral = "基本信息";
        faq = new FAQ();
        faq.setQuestion("汉中市位于哪里？");
        faq.setAnswer("汉中市位于陕西省南部，秦岭南麓，汉水中游，是连接陕西、四川、甘肃、重庆的交通枢纽。地理坐标为东经106°51′-108°51′，北纬32°20′-33°50′。");
        faq.setCategory(categoryGeneral);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
        faq = new FAQ();
        faq.setQuestion("汉中市的气候如何？");
        faq.setAnswer("汉中属于亚热带湿润季风气候，四季分明，雨量充沛。年平均气温14.3℃，年降水量800-1000毫米。夏季较为炎热，冬季较为温和，春秋两季气候宜人，是旅游的最佳季节。");
        faq.setCategory(categoryGeneral);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
        faq = new FAQ();
        faq.setQuestion("汉中有哪些著名的历史文化？");
        faq.setAnswer("汉中是中华文明的重要发祥地之一，历史悠久，文化底蕴深厚。这里是汉族的主要发源地之一，也是三国文化的重要遗址。著名的历史文化包括三国文化（特别是与诸葛亮相关的文化）、汉水文化、秦岭文化等。此外，汉中还有丰富的非物质文化遗产，如汉调桄桄子、汉中皮影戏等。");
        faq.setCategory(categoryGeneral);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
        faq = new FAQ();
        faq.setQuestion("游览汉中需要多少天？");
        faq.setAnswer("这取决于您的旅行计划和兴趣。一般来说，游览汉中市区主要景点需要1-2天，如果要包括周边县区的景点，建议安排3-5天。如果您对汉中的历史文化和自然风光都很感兴趣，希望深度体验，可以安排一周左右的时间。您可以参考我们网站上的旅游线路页面，选择适合您的行程。");
        faq.setCategory(categoryGeneral);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
        
        faq = new FAQ();
        faq.setQuestion("汉中旅游的最佳时间是什么时候？");
        faq.setAnswer("汉中的最佳旅游时间是春季和秋季。春季（3-5月）可以欣赏到美丽的油菜花海；秋季（9-11月）天高气爽，气候宜人，适合户外活动。");
        faq.setCategory(categoryGeneral);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
        faq = new FAQ();
        faq.setQuestion("汉中地区的海拔是多少？会有高原反应吗？");
        faq.setAnswer("汉中盆地平均海拔约500米，不属于高原地区，所以完全不用担心高原反应的问题。部分山区海拔较高，如紫柏山主峰可达2600米，但正常游览不会引起不适。");
        faq.setCategory(categoryGeneral);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
    
        // --- 出行交通 ---
        sortOrder = 1;
        String categoryTravel = "出行交通";
        faq = new FAQ();
        faq.setQuestion("如何到达汉中？");
        faq.setAnswer("汉中交通便利，可以通过以下方式到达：\n<ul>\n<li><strong>飞机</strong>：汉中西关机场有直飞西安、北京、上海、广州、成都等城市的航班。</li>\n<li><strong>高铁</strong>：西成高铁和西汉高铁途经汉中，从西安到汉中只需约1小时。</li>\n<li><strong>公路</strong>：汉中有多条高速公路连接周边城市，如十天高速、西汉高速、汉巴高速等。</li>\n</ul>");
        faq.setCategory(categoryTravel);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
        faq = new FAQ();
        faq.setQuestion("汉中市内交通便利吗？");
        faq.setAnswer("汉中市区不大，交通比较便利。市内有多条公交线路，覆盖主要景点和商业区，票价1-2元。此外，市区内还有出租车、共享单车等交通工具，方便游客出行。如果您计划前往郊区或周边县区的景点，可以选择包车或乘坐班车。");
        faq.setCategory(categoryTravel);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
        faq = new FAQ();
        faq.setQuestion("自驾游汉中需要注意什么？");
        faq.setAnswer("自驾游汉中需要注意以下几点：\n<ul>\n<li>汉中周边有山区道路，部分路段较为崎岖，请注意安全驾驶。</li>\n<li>前往一些偏远景区的道路可能比较狭窄，请减速慢行。</li>\n<li>山区天气多变，请随时关注天气预报，避免在大雨或雾天出行。</li>\n<li>部分景区停车场可能较小，建议提前了解停车情况。</li>\n<li>加油站在市区和主要高速公路沿线较多，但在偏远地区可能较少，请提前规划加油。</li>\n</ul>");
        faq.setCategory(categoryTravel);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
        
        faq = new FAQ();
        faq.setQuestion("汉中各景点之间的交通如何？");
        faq.setAnswer("汉中市区内的景点之间可以通过公交车、出租车或共享单车到达。市区与周边县区景点之间，可以乘坐班车或包车。以下是几个主要景点之间的交通信息：\n<ul>\n<li>市区至武侯墓：可乘坐前往勉县的班车，到达后转乘3路公交车或出租车。</li>\n<li>市区至褒河漂流：可乘坐前往勉县的班车，到达后转乘当地面包车。</li>\n<li>市区至天台山：可乘坐前往留坝县的班车，到达后转乘景区专线车。</li>\n</ul>");
        faq.setCategory(categoryTravel);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
        // --- 住宿问题 ---
        sortOrder = 1;
        String categoryAccom = "住宿问题";
        faq = new FAQ();
        faq.setQuestion("汉中有哪些住宿选择？");
        faq.setAnswer("汉中市区及周边景区提供多种住宿选择，包括：\n<ul>\n<li><strong>星级酒店</strong>：市区有多家三星级至四星级酒店，如汉中嘉陵江大酒店等，设施完善，服务周到。</li>\n<li><strong>经济型酒店</strong>：市区及各县城有多家连锁经济型酒店，价格实惠，干净舒适。</li>\n<li><strong>特色民宿</strong>：景区周边有许多特色民宿，如武侯墓附近的武侯山庄等，环境优美，体验当地文化。</li>\n<li><strong>青年旅舍</strong>：市区古城内有青年旅舍，适合背包客和预算有限的游客。</li>\n</ul>");
        faq.setCategory(categoryAccom);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
        
        faq = new FAQ();
        faq.setQuestion("汉中住宿价格如何？");
        faq.setAnswer("汉中的住宿价格相对较为亲民，具体如下：\n<ul>\n<li>星级酒店：300-600元/晚</li>\n<li>经济型酒店：150-300元/晚</li>\n<li>特色民宿：180-400元/晚</li>\n<li>青年旅舍：60-150元/晚</li>\n</ul>\n<p>节假日期间，特别是黄金周和暑假期间，住宿价格可能会上涨20%-50%，建议提前预订。</p>");
        faq.setCategory(categoryAccom);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
        faq = new FAQ();
        faq.setQuestion("住在汉中市区还是景区附近更好？");
        faq.setAnswer("这取决于您的旅行计划和偏好：\n<ul>\n<li><strong>市区住宿优势</strong>：交通便利，餐饮和购物选择多，适合游览市区景点和作为游览周边景点的出发地。</li>\n<li><strong>景区附近住宿优势</strong>：环境优美，更贴近自然，可以更好地体验当地文化，适合深度体验某个特定景区。</li>\n</ul>");
        faq.setCategory(categoryAccom);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
        faq = new FAQ();
        faq.setQuestion("预订住宿需要提前多久？");
        faq.setAnswer("建议根据不同时期提前预订：\n<ul>\n<li><strong>旅游旺季（5-10月）</strong>：建议提前2-4周预订，特别是周末和节假日。</li>\n<li><strong>黄金周和暑假</strong>：建议提前1-2个月预订，尤其是热门景区附近的住宿。</li>\n<li><strong>淡季（11月-次年4月）</strong>：可以提前1周左右预订，或者直接到达后选择，但最好还是提前确认。</li>\n</ul>");
        faq.setCategory(categoryAccom);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
        
        // --- 景点门票 ---
        sortOrder = 1;
        String categoryTickets = "景点门票";
        faq = new FAQ();
        faq.setQuestion("汉中主要景点的门票价格是多少？");
        faq.setAnswer("汉中主要景点的门票价格如下：\n<ul>\n<li>南湖风景区：40元/人</li>\n<li>武侯墓：60元/人</li>\n<li>汉中古城墙：免费</li>\n<li>定军山：50元/人</li>\n<li>天台山：60元/人</li>\n<li>褒河漂流：120元/人</li>\n<li>汉中博物馆：免费（需预约）</li>\n</ul>\n<p>部分景区可能会根据季节和活动调整门票价格，建议出行前查询最新信息。</p>");
        faq.setCategory(categoryTickets);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
        faq = new FAQ();
        faq.setQuestion("汉中有没有景点联票或优惠票？");
        faq.setAnswer("是的，汉中提供多种联票和优惠票：\n<ul>\n<li><strong>汉中文化旅游联票</strong>：包含武侯墓、定军山、南湖等主要景点，价格为150元/人，比单独购票节省约30%。</li>\n<li><strong>三国文化游联票</strong>：包含武侯墓、定军山、汉中博物馆（免费但需预约），价格为100元/人。</li>\n<li><strong>优惠政策</strong>：\n<ul>\n<li>65岁以上老人凭身份证可享受半价优惠</li>\n<li>学生凭学生证可享受半价优惠</li>\n<li>1.2米以下儿童免票</li>\n<li>军人、残疾人凭证件免票</li>\n</ul>\n</li>\n</ul>\n<p>联票可在各大景点售票处或汉中旅游服务中心购买，有效期通常为7天。</p>");
        faq.setCategory(categoryTickets);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
        faq = new FAQ();
        faq.setQuestion("景点门票需要提前预订吗？");
        faq.setAnswer("大多数景点不需要提前预订门票，可以直接在景区售票处购买。但在以下情况下，建议提前预订：\n<ul>\n<li>黄金周、暑假等旅游高峰期</li>\n<li>特殊活动或节庆期间（如武侯祭祀大典、油菜花节等）</li>\n<li>需要预约的景点（如汉中博物馆）</li>\n<li>参加特定体验活动（如褒河漂流）</li>\n</ul>");
        faq.setCategory(categoryTickets);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
        faq = new FAQ();
        faq.setQuestion("汉中有哪些免费的景点？");
        faq.setAnswer("汉中有多个免费的景点和公共空间，包括：\n<ul>\n<li><strong>汉中古城墙</strong>：可以免费登上城墙，俯瞰汉中市区全景。</li>\n<li><strong>汉中博物馆</strong>：免费参观，但需要提前预约。</li>\n<li><strong>嘉陵江风光带</strong>：沿江步道，风景优美，适合散步和休闲。</li>\n<li><strong>汉中市民广场</strong>：市中心的大型广场，经常有文化活动。</li>\n<li><strong>兴汉新区湿地公园</strong>：城市湿地公园，环境优美，适合亲近自然。</li>\n<li><strong>各县区文化馆</strong>：展示当地文化和艺术，多为免费开放。</li>\n</ul>");
        faq.setCategory(categoryTickets);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
        // --- 购物 ---
        sortOrder = 1;
        String categoryShopping = "购物";
        faq = new FAQ();
        faq.setQuestion("汉中有什么特产可以购买？");
        faq.setAnswer("汉中有很多值得购买的特产，如西乡牛肉干、宁强核桃馍、城固柑橘、留坝蜂蜜等。可以在市区的特产店或大型超市购买。");
        faq.setCategory(categoryShopping);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    
        // --- 其他 ---
        sortOrder = 1;
        String categoryOther = "其他";
        faq = new FAQ();
        faq.setQuestion("汉中治安如何？需要注意什么？");
        faq.setAnswer("汉中治安良好，市民友好。但无论在哪里旅游，都应保持警惕，保管好个人财物，尤其是在人多的旅游景点和车站。夜间避免独自前往偏僻地区。");
        faq.setCategory(categoryOther);
        faq.setSortOrder(sortOrder++);
        faqRepository.save(faq);
    }
    
    private void initUsers() {
        User admin = new User();
        admin.setUsername("admin");
        admin.setPassword(passwordEncoder.encode("admin123"));
        admin.setEmail("admin@example.com");
        admin.setRole("ADMIN");
        userRepository.save(admin);

        User user1 = new User();
        user1.setUsername("user1");
        user1.setPassword(passwordEncoder.encode("user123"));
        user1.setEmail("user1@example.com");
        // Role will be set to USER by default via @PrePersist if not specified
        userRepository.save(user1);
    }
    
    private void initContactMessages() {
        ContactMessage msg1 = new ContactMessage();
        msg1.setName("张三");
        msg1.setEmail("zhangsan@example.com");
        msg1.setPhone("13812345678");
        msg1.setSubject("旅游线路咨询");
        msg1.setMessage("你好，我想咨询一下关于'汉中山水文化三日游'的详细行程安排和费用包含情况。我们一行四人，下个月出发，是否有团队优惠？");
        contactMessageRepository.save(msg1);

        ContactMessage msg2 = new ContactMessage();
        msg2.setName("李四");
        msg2.setEmail("lisi@example.com");
        msg2.setPhone("13987654321");
        msg2.setSubject("商务合作");
        msg2.setMessage("您好，我们是一家旅游媒体公司，希望与贵网站进行内容合作和广告置换，请问应该联系哪个部门？期待您的回复。");
        contactMessageRepository.save(msg2);

        ContactMessage msg3 = new ContactMessage();
        msg3.setName("王五");
        msg3.setEmail("wangwu@example.com");
        msg3.setPhone("13711112222");
        msg3.setSubject("投诉建议");
        msg3.setMessage("我上周参加了你们推荐的'自然风光一日游'，导游服务很好，但午餐安排的餐厅味道一般，希望可以改进。整体体验还是不错的，给个建议。");
        contactMessageRepository.save(msg3);
        
        ContactMessage msg4 = new ContactMessage();
        msg4.setName("赵六");
        msg4.setEmail("zhaoliu@example.com");
        msg4.setSubject("其他");
        msg4.setMessage("请问青木川古镇现在需要门票吗？网站上写的是免费，想确认一下。另外，从汉中市区过去交通方便吗？谢谢！");
        contactMessageRepository.save(msg4);
    }
} 